<!DOCTYPE html>
<html>

<head>
  <meta charset="utf-8" />
  <title></title>
  <style type="text/css">
    html,
    body {
      margin: 0px;
      padding: 0px;
      width: 100%;
      height: 100%;
      font-family: "微软雅黑";
      font-size: 62.5%;
    }

    .boxDom {
      width: 100%;
      height: 100%;
      position: relative;
      overflow: hidden;
    }

    .idDom {
      width: 100%;
      height: 100px;
      background: #666;
      position: fixed;
      bottom: 0px;
    }

    .content {
      display: inline-block;
      width: 430px;
      height: 40px;
      position: absolute;
      left: 0px;
      right: 0px;
      top: 0px;
      bottom: 0px;
      margin: auto;
    }

    .title {
      display: inline;
      font-size: 4em;
      vertical-align: bottom;
      color: #fff;
    }

    .text {
      border: none;
      width: 300px;
      height: 30px;
      border-radius: 5px;
      font-size: 2.4em;
    }

    .btn {
      width: 60px;
      height: 30px;
      background: #f90000;
      border: none;
      color: #fff;
      font-size: 2.4em;
    }

    span {
      width: 300px;
      height: 40px;
      position: absolute;
      overflow: hidden;
      color: #000;
      font-size: 4em;
      line-height: 1.5em;
      cursor: pointer;
      white-space: nowrap;
      border: 1px solid skyblue;
    }
  </style>
</head>

<body>
  <div class="boxDom" id="boxDom">
    <div class="idDom" id="idDom">
      <div class="content">
        <p class="title">吐槽:</p>
        <input type="text" class="text" id="text" />
        <button type="button" class="btn" id="btn">发射</button>
      </div>
    </div>
  </div>
</body>

<script src="./jquery.min.js"></script>
<script>
  $(function () {
    let colors = [
      "red",
      "green",
      "hotpink",
      "pink",
      "cyan",
      "yellowgreen",
      "purple",
      "deepskyblue",
    ];


    // 步骤：
    // 函数封装随机颜色
    function randomColor() {

      let random = Math.floor(Math.random() * colors.length)
      // console.log(random);
      return colors[random]
    }
    // 函数封装随机高度
    function randomHeight() {
      let rdh = Math.floor(Math.random() * ($(window).height() * 0.5))
      return rdh
    }
    // console.log(randomHeight());
    // console.log(randomColor());
    // 1. 找对象（text btn boxDom）

    function fn() {
      const span = $('<span></span>')
      // console.log($('.text').val());
      span.html(($('.text').val()).trim())
      // 再把创建好的span插入弹射弹幕盒子的后面
      $('.boxDom').append(span)
      // 之后设置弹幕span是可视屏幕的宽度,高度是上面写的随机高度，调用一下，颜色也是
      $(span).css({
        left: $(window).width(),
        top: randomHeight(),
        color: randomColor()
      })
      // span是移动到可视屏幕看不到的位置，弹幕移动的时间，速度和匀速
      $(span).animate({
        left: -500
      }, 8000, 'linear', function () {
        // 移动到看不见的地方删除
        $(this).remove()
      })
      // 清空文本框里之前输入的值
      $('.text').val('')
    }
    // 点击之后创建span,把span内容改成输入的内容
    $('.btn').on('click', function () {
      fn()
    })
    $('.text').on('keyup', function (e) {
      if (e.key === 'Enter') {
        fn()
      }
    })
    // 2. 给btn注册click，获取到text的内容
    // 3. 创建span元素，设置内容为text的内容，添加到页面中（放到boxDom中）
    // 4. 设置弹幕span的位置和颜色
    //      颜色 随机从colors数组中取颜色
    //      位置 left（可视区的宽度） top（随机，范围 可视区的高度的一半）
    // 5. span 需要做自定义动画

    // 细节
    //  1. 如果没有内容，就不需要span
    //  2. 解决纯空格 trim()
    //  3. 发送之后，清空输入框  val("")
    //  4. 回车发布

  });
</script>

</html>